#include <gflags/gflags.h>
#include "myslam/visual_odometry.h"

//gflags库的使用说明参考：
//(1) https://www.jianshu.com/p/2179938a818d
//(2) https://blog.csdn.net/NMG_CJS/article/details/104436079

//第三个参数是说明信息
DEFINE_string(config_file, "/home/developer/Documents/slamStereoVision/config/default.yaml", "config file path");

int main(int argc, char **argv)
{
    google::ParseCommandLineFlags(&argc, &argv, true);

    //构造一个VO类对象，这里其实 FLAGS_config_file(定义的flag可以像正常的变量一样使用，只需在前面加上 FLAGS_前缀) 也可以通过argv[]参数来替代。
    myslam::VisualOdometry::Ptr vo(new myslam::VisualOdometry(FLAGS_config_file));
    //assert(vo->Init() == true);//这里虽然是一个判断语句，但是在该过程中已然完成了VO类对象vo的初始化

    vo->Init(); //VO类对象vo的初始化
    vo->Run();//把视觉里程计跑起来

    return 0;
}
